VPN Mining Platform Documentation
System Overview
The VPN Mining Platform is an innovative solution that combines traditional VPN services with cryptocurrency mining capabilities. This platform enables server operators to earn tokens by providing VPN services while ensuring high-quality, secure connections for users.
Core Features
graph TD
A[VPN Mining Platform] --> B[Protocol Management]
A --> C[Server Monitoring]
A --> D[Token System]
A --> E[Analytics]
B --> B1[VLESS]
B --> B2[REALITY]
B --> B3[WIREGUARD]
B --> B4[OPENCONNECT]
C --> C1[Real-time Metrics]
C --> C2[Performance Analysis]
C --> C3[Health Monitoring]
D --> D1[Mining Rewards]
D --> D2[Token Distribution]
D --> D3[Withdrawal System]
E --> E1[Network Analytics]
E --> E2[User Statistics]
E --> E3[Server Performance]
Key Components
Protocol Management
The platform supports multiple VPN protocols, each serving different use cases and security requirements:
- VLESS: A lightweight protocol optimized for performance
- REALITY: Advanced security protocol with enhanced encryption
- WIREGUARD: Modern, fast, and secure VPN protocol
- OPENCONNECT: Traditional VPN protocol with broad compatibility
Server Monitoring
Comprehensive monitoring system that tracks:
- Real-time server performance metrics
- Connection quality and stability
- Resource utilization
- User activity and connections
Token System
An incentive-based system that:
- Rewards server operators based on performance
- Manages token distribution
- Handles secure withdrawals
- Tracks mining activities
Analytics
Advanced analytics capabilities providing:
- Network-wide performance insights
- User behavior analysis
- Server efficiency metrics
- Token economy statistics
Architecture
Component Overview
graph TD
Client[Client Applications] --> API[GraphQL API Layer]
API --> AuthService[Authentication Service]
API --> MiningService[Mining Service]
API --> MetricsService[Metrics Service]
API --> ProtocolService[Protocol Service]
MiningService --> DB[(Database)]
MetricsService --> DB
ProtocolService --> DB
MetricsService --> WS[WebSocket Server]
WS --> Client
Service Descriptions
GraphQL API Layer
The central gateway handling all client-server communications, providing:
- Type-safe data exchange
- Real-time subscriptions
- Efficient query resolution
- Batch operations support
Authentication Service
Manages all security aspects including:
- User authentication
- Server validation
- Token verification
- Permission management
Mining Service
Handles all mining-related operations:
- Mining session management
- Reward calculations
- Performance tracking
- Token distribution
Metrics Service
Responsible for:
- Real-time data collection
- Performance monitoring
- Statistical analysis
- Health checks
Protocol Service
Manages VPN protocols:
- Protocol configuration
- Connection management
- Performance optimization
- Security settings
API Structure
GraphQL Schema Organization
The API is organized into three main categories:
Queries
Read operations for accessing data:
type Query {
# Server Management
miningServers: [MiningServerView!]!
miningServersByProtocol(protocol: ProtocolType!): [MiningServerView!]!
# Analytics
networkAnalytics(from: DateTime, to: DateTime): NetworkAnalytics!
# User Data
myConnectionStats(from: DateTime, to: DateTime): ConnectionStatsPage!
}
Mutations
Write operations for modifying data:
type Mutation {
# Server Operations
enableMiningServer(serverId: ID!): MiningServerView!
startMining(serverId: ID!): MiningActivityView!
# Reward Management
claimMiningRewards(serverId: ID!): MiningRewardResult!
# Protocol Management
updateMiningServerProtocol(
input: MiningServerProtocolInput!
): MiningServerProtocolView!
}
Subscriptions
Real-time data streams:
type Subscription {
metricUpdates: RealTimeMetrics!
}
Core Data Types
MiningServerView
Represents a mining-enabled server:
type MiningServerView {
id: ID! // Unique server identifier
hostName: String! // Server hostname
publicIp: String! // Public IP address
location: String! // Geographic location
protocols: [MiningServerProtocolView!]! // Supported protocols
metrics: ServerMetrics // Current server metrics
tokenBalance: Float! // Accumulated tokens
miningEnabled: Boolean! // Mining status
miningRate: Float! // Current mining rate
}
ServerMetrics
Real-time server performance metrics:
type ServerMetrics {
cpuUsage: Float! // CPU utilization percentage
memoryUsage: Float! // Memory usage percentage
networkSpeed: Float! // Network throughput
activeConnections: Int! // Current active connections
lastHeartbeat: String! // Last server check-in time
}
Detailed API Documentation
Mining Server Management APIs
Query: Get Mining Servers
Retrieves a list of all mining-enabled servers with their current status and metrics.
query MiningServers {
miningServers {
id
hostName
publicIp
location
protocols {
type
port
enabled
}
metrics {
cpuUsage
memoryUsage
networkSpeed
}
tokenBalance
miningEnabled
}
}
Usage:
- Used in dashboard to display server list
- Monitors server status and performance
- Tracks mining activities and rewards
Response Fields:
id
: Unique server identifierhostName
: Server's hostname for identificationpublicIp
: Public IP address for connectionslocation
: Geographic location for routingprotocols
: Array of supported VPN protocolsmetrics
: Current performance metricstokenBalance
: Accumulated mining rewardsminingEnabled
: Current mining status
Query: Servers by Protocol
Fetches servers filtered by specific protocol type with optional sorting.
query ServersByProtocol($protocol: ProtocolType!, $sortBy: SortType) {
serversByProtocol(protocol: $protocol, sortBy: $sortBy) {
id
hostName
location
activeConnections
protocols {
type
enabled
}
}
}
Parameters:
protocol
: Type of VPN protocol (VLESS, REALITY, WIREGUARD, OPENCONNECT)sortBy
: Optional sorting criteria (LOCATION, CONNECTIONS, PERFORMANCE)
Use Cases:
- Protocol-specific server selection
- Load balancing
- Geographic distribution analysis
Analytics and Monitoring APIs
Real-time Metrics Subscription
Provides continuous updates of server and network metrics.
subscription MetricUpdates {
metricUpdates {
timestamp
activeConnections
serverMetrics {
serverId
cpuUsage
memoryUsage
networkSpeed
activeMiners
}
networkMetrics {
totalBandwidth
averageLatency
totalActiveUsers
connectionsByRegion
currentTokenRate
}
}
}
Subscription Data:
- Real-time performance metrics
- Network status updates
- User connection information
- Token rate fluctuations
Implementation Example:
const wsClient = new WebSocketClient({
url: "ws://api.example.com/graphql",
connectionParams: {
authToken: "user-auth-token",
},
});
const subscription = wsClient.subscribe({
query: METRIC_UPDATES_SUBSCRIPTION,
variables: {},
onData: (response) => {
// Handle real-time metric updates
updateDashboard(response.data.metricUpdates);
},
});
Network Analytics Query
Comprehensive network statistics and performance metrics.
query NetworkAnalytics($from: DateTime, $to: DateTime) {
networkAnalytics(from: $from, to: $to) {
totalActiveConnections
totalUsers
totalServers
totalDataTransferred
connectionsPerServer
dataPerServer
topPerformingServers {
serverId
serverName
averageCpuUsage
averageMemoryUsage
averageNetworkSpeed
}
}
}
Analytics Features:
- Historical data analysis
- Performance trending
- Server comparison
- Usage patterns
- Resource utilization
Token and Mining System
Mining Operations Management
Start Mining Operation
Initiates mining activity on a specified server.
mutation StartMining($serverId: ID!) {
startMining(serverId: $serverId) {
id
server {
id
hostName
}
startTime
isActive
currentReward
}
}
Operation Flow:
- Server validation
- Protocol verification
- Resource allocation
- Metrics initialization
- Reward tracking setup
Success Response:
{
"data": {
"startMining": {
"id": "mining_123",
"server": {
"id": "server_456",
"hostName": "mining-node-1"
},
"startTime": "2024-01-20T10:00:00Z",
"isActive": true,
"currentReward": 0.0
}
}
}
Claim Mining Rewards
Process to claim accumulated mining rewards.
mutation ClaimRewards($serverId: ID!) {
claimMiningRewards(serverId: $serverId) {
success
amount
newBalance
message
}
}
Reward Calculation Factors:
- Server uptime
- Connection quality
- Resource utilization
- User satisfaction metrics
- Network contribution
Validation Rules:
- Minimum reward threshold
- Claiming cooldown period
- Server performance requirements
- Protocol compliance
- User feedback scores
User Management and Statistics
User Connection Dashboard
Comprehensive view of user's connection history and statistics.
query MyConnectionDashboard {
myConnectionDashboard {
currentConnection {
id
serverName
connectionStart
dataTransferred
networkSpeed
}
recentConnections {
id
serverName
connectionStart
connectionEnd
dataTransferred
}
totalDataTransferred
averageMetrics {
averageUploadSpeed
averageDownloadSpeed
averageNetworkSpeed
averageResponseTime
averageLatency
}
}
}
Dashboard Components:
-
Current Connection Status
- Active server details
- Connection duration
- Performance metrics
- Protocol information
-
Historical Data
- Connection history
- Usage patterns
- Performance trends
- Server preferences
-
Performance Metrics
- Speed averages
- Latency statistics
- Reliability scores
- Protocol efficiency
Protocol Management System
Protocol Types and Configuration
Protocol Configuration Structure
Each protocol has specific configuration requirements and security considerations.
type MiningServerProtocolView {
id: ID! // Unique protocol identifier
type: ProtocolType! // Protocol type (VLESS, REALITY, etc.)
port: Int! // Network port
enabled: Boolean! // Activation status
configString: String! // Protocol-specific configuration
publicKey: String // Public key for authentication
}
Protocol-Specific Settings
VLESS Protocol
interface VLESSConfig {
port: number;
encryption: string;
fallback: {
port: number;
server: string;
};
security: {
certificates: string[];
privateKey: string;
};
}
Configuration Parameters:
- Port configuration
- Encryption settings
- Fallback options
- Security certificates
- Traffic routing rules
REALITY Protocol
interface REALITYConfig {
serverName: string;
privateKey: string;
shortIds: string[];
settings: {
handshake: HandshakeConfig;
encryption: EncryptionSettings;
};
}
Security Features:
- Advanced handshake mechanism
- Dynamic key rotation
- Traffic obfuscation
- Anti-detection measures
UUID Migration System
Migration Process
mutation MigrateUuids {
migrateUserUuids {
success
migratedCount
errors {
userId
reason
}
details {
oldUuid
newUuid
status
}
}
}
Migration Steps:
- Backup current UUIDs
- Generate new UUIDs
- Update protocol configurations
- Validate connections
- Roll back on failure
Validation Process
mutation ValidateUuids {
validateUserUuids {
success
validatedCount
invalidEntries {
uuid
reason
}
recommendations {
action
affected
}
}
}
Advanced Analytics System
Network Performance Analytics
Comprehensive Network Overview
type NetworkOverview {
totalActiveConnections: Int! // Current active connections
totalServers: Int! // Total server count
activeServers: Int! // Active server count
totalDataTransferred: Float! // Total data volume
averageNetworkUtilization: Float! // Network usage
connectionsByRegion: JSON! // Geographic distribution
}
Metrics Collection:
- Real-time performance data
- Geographic distribution
- Protocol efficiency
- Resource utilization
- User satisfaction metrics
Performance Monitoring
interface PerformanceMetrics {
server: {
cpu: CPUMetrics;
memory: MemoryMetrics;
network: NetworkMetrics;
protocols: ProtocolMetrics[];
};
users: {
active: number;
connected: number;
satisfaction: number;
};
mining: {
rate: number;
efficiency: number;
rewards: number;
};
}